package com.xuecheng.content.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fasterxml.jackson.databind.node.LongNode;
import com.xuecheng.api.content.model.dto.CourseBaseDTO;
import com.xuecheng.api.content.model.qo.QueryCourseModel;
import com.xuecheng.api.content.model.vo.CourseBaseVO;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import com.xuecheng.content.entity.CourseBase;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.Map;

/**
 * <p>
 * 课程基本信息 服务类
 * </p>
 *
 * @author itcast
 * @since 2021-12-08
 */
public interface CourseBaseService extends IService<CourseBase> {

    /**
     * 课程基本服务分页查询
     * @param params PageRequestParams 分页数据
     * @param model  QueryCourseModel  查询条件数据
     * @return  PageVo
     */
    PageVO<CourseBase> queryCourseBaseList(PageRequestParams params, @RequestBody QueryCourseModel model,Long companyId);

    /**
     * 保存课程基本信息
     * @param dto  CourseBaseDTO 保存课程基本信息的vo实体类
     * @return  courseBasseDto
     */
    CourseBaseDTO courseBasseDto (@RequestBody CourseBaseDTO dto);

    /**
     * 修改课程基本信息
     * @param dto  CourseBaseDTO 课程基本信息的dto封装类
     * @return  modifyCourseBase
     */
    CourseBaseDTO modifyCourseBase(CourseBaseDTO dto);

    /**
     * 根据课程获取基本信息
     * @param courseBaseId  Long  基本信息id
     * @param companyId Long  公司id
     * @return
     */
    CourseBaseDTO getCourseBase(Long courseBaseId,Long companyId);

    /**
     * 根据id删除课程基本信息
     * @param courseBaseId  Long用户id
     * @param companyId   Long 公司id
     */
    void removeCoursebase(Long courseBaseId, Long companyId);

    /**
     * 提交课程审核
     * @param courseBaseId  Long 课程id
     * @param compantId Long   公司id
     */
    void commitCourseBase(Long courseBaseId , Long compantId);

    /**
     * 课程审核
     * @param courseBaseDTO 保存信息的实体类
     * @return
     */
    void approveCourse(CourseBaseDTO courseBaseDTO);


}
